#coding=utf-8

import time
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr


# "ITPost@bjshell.com", "itpost.123"
# mymail("ITPost@bjshell.com","2541692705@qq.com","itpost.123",mail_content1)
# mymail("ITPost@bjshell.com","shijian.zhang@ykd.me","itpost.123",mail_content1)
# sendFrom='2541692705@qq.com' #发件人邮箱账号，为了后面易于维护，所以写成了变量
sendFrom='ITPost@bjshell.com' #发件人邮箱账号，为了后面易于维护，所以写成了变量
# sendTo=["shijian.zhang@ykd.me",'2541692705@qq.com'] #收件人邮箱账号，为了后面易于维护，所以写成了变量
sendTo=["shijian.zhang@ykd.me",'Gemma.Wang@edelman.com','nan.gao@bjshell.com','wei.cao@bjshell.com'] #收件人邮箱账号，为了后面易于维护，所以写成了变量
#  ["shijian.zhang@ykd.me",'chelsea.zhong@edelman.com','D.Jiang@bjshell.com','zhaoyang.yu@bjshell.com']
# passwd="oofbdbwcoraiechj" #授权码
passwd="itpost.123" #授权码

consistence_file='/home/marvin/daily_job/py_job/consistence'
# consistence_file='consistence'
a = time.localtime(time.time() - 24 * 60 * 60)  ##获取昨天日期
yesterday = time.strftime("%Y年%m月%d日", a)
# 情景1：与前一天HOS数据保持一致
mail_content1='''
您好，

经核对POS和中间库，%s的大数据平台的数据结果准确，还请放心使用。

'''%(yesterday)
# 情景2：与前一天HOS数据有差异
mail_content2='''
您好，

经核对POS和中间库，%s的大数据平台的数据结果存在部分差异，我们正在抓紧核查中，会及时更新给大家。

'''%(yesterday)
#情景3：HOS数据未在8点收到
mail_content3='''
您好，

截至当前，%s的HOS数据仍未收到，还请核查并重新发送。我们会在收到数据后开始对比，时间会有相应延迟，请知悉~

'''%(yesterday)




def mymail(sendFrom,sendTo,passwd,msg,subject=0):
    '''
    发送邮件的方法
    :param sendFrom: 发送人邮箱
    :param sendTo: 收件人邮箱
    :param passwd: 发送邮箱授权码
    :param msg: 发送信息
    :return:
    '''
    ret=True
    msg=MIMEText(msg,'plain','utf-8')
    msg['From']=formataddr(["大数据平台数据校验",sendFrom])   #括号里的对应发件人邮箱昵称、发件人邮箱账号
    # msg['To']=formataddr(["a",sendTo])   #括号里的对应收件人邮箱昵称、收件人邮箱账号
    if subject==0:
        msg['Subject']="大数据平台数据准确" #邮件的主题，也可以说是标题
    elif subject==1:
        msg['Subject'] = "大数据平台数据结果存在部分差异"  # 邮件的主题，也可以说是标题
    server=smtplib.SMTP("smtp.partner.outlook.cn",587)  #发件人邮箱中的SMTP服务器，端口是465
    # server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器，端口是465
    server.starttls()
    server.login(sendFrom,passwd)    #括号中对应的是发件人邮箱账号、邮箱密码
    server.sendmail(sendFrom,sendTo,msg.as_string())   #括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
    server.quit()   #这句是关闭连接的意思
    return ret


def main():
    flag='0'
    with open(consistence_file,'r') as f:
        flag=f.read()
    if flag=='0':
        mymail(sendFrom,sendTo,passwd,mail_content1,subject=0)
    else:
        mymail(sendFrom, sendTo, passwd, mail_content2, subject=1)

if __name__ == '__main__':
    main()
